<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./js/react.development.js"></script>
    <script src="./js/react-dom.development.js"></script>
    <script src="./js/babel.min.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            font: 30px / 90px "微软雅黑";
        }

        ul {
            list-style: none;
        }

        .wrap {
            width: 1000px;
            height: 1000px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-top: -500px;
            margin-left: -500px;
            background: url(img/bg.jpg) no-repeat;
        }

        .menu {
            width: 330px;
            border-radius: 10px;
            overflow: hidden;
            margin-top: 285px;
            margin-left: 335px;
            background: #f87a75;
            box-shadow: 0 20px 50px rgba(248, 122, 117, .5);
        }

        .title {
            height: 90px;
            padding-left: 112px;
            box-sizing: border-box;
            color: #fff;
            position: relative;
        }

        .title::after {
            content: '';
            position: absolute;
            right: 36px;
            top: 41px;
            background: url(img/ar.png) no-repeat;
            width: 28px;
            height: 16px;
        }

        .list {
            width: 316px;
            padding-left: 7px;
            padding-bottom: 5px;
            display: none;
        }

        .list li {
            height: 90px;
            margin-bottom: 2px;
            background: #fee4e3;
            border-radius: 20px;
            padding-left: 112px;
            box-sizing: border-box;
            background-position: 23px 24px;
            background-repeat: no-repeat;

        }

        .list li:hover {
            background-color: #fff;
            box-shadow: 0 0 50px rgba(248, 122, 117, 0.93);
            position: relative;
        }

        .list li:nth-of-type(1) {
            background-image: url(img/icon1.png);
        }

        .list li:nth-of-type(2) {
            background-image: url(img/icon2.png);
        }

        .list li:nth-of-type(3) {
            background-image: url(img/icon3.png);
        }

        .list li:nth-of-type(4) {
            background-image: url(img/icon4.png);
        }

        .list li:nth-of-type(5) {
            background-image: url(img/icon5.png);
        }
    </style>
</head>

<body>
    <div id="app">

    </div>
    <script type="text/babel">

        class App extends React.Component {
            state = {
                flag: false,
                menu: "菜单"
            }

            // 控制列表显示与隐藏
            changeList() {
                this.setState({ flag: !(this.state.flag) })
                // console.log(this.state.flag);
            }

            // 替换文字
            changeText = (e) => {
                console.log(e.target.innerHTML);
                this.setState({ menu: e.target.innerText })
                this.changeList()
            }
            render() {  // 类组件会自动有一个render 方法；
                return <div>
                    <div className="wrap">
                        <div className="menu">
                            <div className="title" onClick={() => { this.changeList() }}>{this.state.menu}</div>
                            <ul className="list" style={{ display: this.state.flag ? "block" : "none" }} onClick={this.changeText}>
                                <li>微博</li>
                                <li>图片</li>
                                <li>博客</li>
                                <li>视频</li>
                                <li>更多>></li>
                            </ul>
                        </div>
                    </div>
                </div>   // 返还虚拟dom就可以；
            }
        }

        let root = ReactDOM.createRoot(document.querySelector("#app"));
        root.render(<App />);
    </script>

</body>

</html>